﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Utilies
{
    public abstract class Observable
    {
        /// <summary>
        /// Lista de observadores
        /// </summary>
        public List<IObservador> ListaObservadores { get; set; }        
        /// <summary>
        /// Agrega un observador a la lista de observadores
        /// </summary>
        /// <param name="observador"></param>
        public void AgregarObservador(IObservador observador) 
        {
            ListaObservadores.Add(observador);
        }
        /// <summary>
        /// Elimina un observador de la lista de observadores
        /// </summary>
        /// <param name="observador"></param>
        public void EliminarObservador(IObservador observador)
        {
            ListaObservadores.Remove(observador);
        }
        /// <summary>
        /// Actualiza todos los observadores
        /// </summary>
        /// <param name="observable"></param>
        public void ActualizarTodo(Observable observable)
        {
            foreach (IObservador obs in ListaObservadores)
            {
                obs.Actualizar(observable);
            }
        }
    }
}
